Hello, There is strange scenario in which i need to copy the text entered inside the TEXTBOX to the drop down available. The drop down is already available but needs to add the value entered in the text box and then based on that manipulations is to be done. Kindly help. Thanks. KBSri - Fri May 30 07:23:43 EDT 2014 |
Re: Copying the value entered inside the TEXTBOX to dropdown available You can modify the options in a "choice" or "list" box after the dialog is "realized". You can "empty" the entire list, or "delete" or "insert" individual line items. See DXL manual "Common Element Operations", and practice with a test box. Seems to me that an EOL would cause some havok as a "choice" option, as would rich text. I therefore suspect that the user should enter the new option into a "field" rather than a "text box", since "field" doesn't allow those tricky things. Anyway, you could have a button next to the text/field saying "insert into choice", you could also assign a callback to the text/field that gets fired when the user hits "enter". -Louie The dialog "realize" positions the choice/list vis-a-vis other dialog elements (such as buttons). Subsequent modifications to the contents does not alter the dialog layout. |
Re: Copying the value entered inside the TEXTBOX to dropdown available llandale - Fri May 30 12:05:29 EDT 2014 You can modify the options in a "choice" or "list" box after the dialog is "realized". You can "empty" the entire list, or "delete" or "insert" individual line items. See DXL manual "Common Element Operations", and practice with a test box. Seems to me that an EOL would cause some havok as a "choice" option, as would rich text. I therefore suspect that the user should enter the new option into a "field" rather than a "text box", since "field" doesn't allow those tricky things. Anyway, you could have a button next to the text/field saying "insert into choice", you could also assign a callback to the text/field that gets fired when the user hits "enter". -Louie The dialog "realize" positions the choice/list vis-a-vis other dialog elements (such as buttons). Subsequent modifications to the contents does not alter the dialog layout. Louie, Thanks a lot. Any help in DXL scripting to execute this. Just to get started with this. I am not an expert so I need help on that please. |
Re: Copying the value entered inside the TEXTBOX to dropdown available KBSri - Sun Jun 01 14:26:52 EDT 2014 Louie, Thanks a lot. Any help in DXL scripting to execute this. Just to get started with this. I am not an expert so I need help on that please. The choice DBE can be made editable allowing the user to enter their own text. Here is an example from the help edited to do this.
DB reqBox = create "Edit Requirement"
Note that this means you have to use the string version of get() rather than the integer version. Hope that helps Tony
|
Re: Copying the value entered inside the TEXTBOX to dropdown available Tony_Goodman - Mon Jun 02 11:14:57 EDT 2014 The choice DBE can be made editable allowing the user to enter their own text. Here is an example from the help edited to do this.
DB reqBox = create "Edit Requirement"
Note that this means you have to use the string version of get() rather than the integer version. Hope that helps Tony
Thank a lot Tony. In case if need to enter only the TEXT with the capital letters.How can I do it? |
Re: Copying the value entered inside the TEXTBOX to dropdown available KBSri - Tue Jun 03 05:39:18 EDT 2014 Thank a lot Tony. In case if need to enter only the TEXT with the capital letters.How can I do it? Not sure this is what you asked, but you can convert a string to upper (or lower) characters:
-Louie |
Re: Copying the value entered inside the TEXTBOX to dropdown available llandale - Tue Jun 03 14:50:07 EDT 2014 Not sure this is what you asked, but you can convert a string to upper (or lower) characters:
-Louie Hello Louie. I need to add a new ENUM value for the specific attribute from the GUI(ie.drop down) and do the manipulations. Please help. |
Re: Copying the value entered inside the TEXTBOX to dropdown available KBSri - Wed Jun 04 05:31:53 EDT 2014 Hello Louie. I need to add a new ENUM value for the specific attribute from the GUI(ie.drop down) and do the manipulations. Please help. Wow. Sure seemed like you were asking for help on a drop down on a dialog box. This last post makes it seem like you want to prompt the Module admin for a new enumerated value, and add that value to an enumerated attribute TYPE. If so, that is very difficult. The basic DXL function to manipulate enumerations is the "modify (attribute type)" command in the DXL manual, in section "Attribute type manipulation"
There is also an undocumented version that uses Skip lists instead of arrays, but I don't quite get that. This version requires you to declare a set of parellel arrays representing the new set of enumerations. So if you want to change the list of 5 enumerations into a set of 7, then you declare arrays at size 7, populate them, and then call "modify". The key to this is the "mapping" array, where you define which new enumeration "maps" to which old enumeration. So if you want to change "Low" and "High" into "None", "Medium", and "High" it behooves you to say that new enum #2 "High" maps to old enum #1, which is also "High". So the mapping array would look like: {0, -1, 1}. "None" maps to "Low", "Medium" maps to nothing, "High" maps to "High". You use the "mapping" to make sure you preserve existing values; so an object that currently says "High" still says "High" and an object that currently says "Low" says "None" after you modify. I think it very difficult to build a dialog that gives the user the freedom of moving things around like that. Now if your dialog simply wants to add a new enurmation to the bottom of an existing set, then I think it is achievable. You get the AttrType, get its "size", declare arrays at size "Size+1", populate the 1st "Size" values in the arrays, mapping is i=i, add the new one to the last array value, and "modify" the AttrType. -Louie I will say that I've tried but not succeeded in writing DXL to modify enumerated values of attributes in multiple modules. |
Re: Copying the value entered inside the TEXTBOX to dropdown available Please help me out. |
Re: Copying the value entered inside the TEXTBOX to dropdown available Runing out of time so let me scribble part of this.
There is a problem with the "Colors" vector, but I don't recall what it is. -Louie |
Re: Copying the value entered inside the TEXTBOX to dropdown available It would make it a lot easier if you would say what is going wrong. Debugging for "an issue" in 1700 lines of code is difficult. But I do see this: You have a conceptual problem distinguishing Attribute "Values" from Attribute "Definitions" from Attribute "Types". Values: An object can be given a value for an attribute; e.g. setting the "Object Text" for an object. The normal module GUI shows objects as rows and typically attributes as columns, when you edit a cell you are giving that object a value for that attribute. Objects can have attribute values, so can Modules and Links. (Not Projects nor Folders). Definition. This makes an attribute available in a module. the Definition constrains..
[1] What kind of data can be put in the attribute, Text, String, Integer, Boolean etc. This constraint is called the attribute "Type". Type. List of available attribute value contraint types. Notice that there are standard types already defined, "Text", "String", "Integer" et tal. When you create an attribute Definition, you must assign it a Type. A Type can be used by more than one definition, e.g. Last Modified On and Created On are both of type "Date". Imagine definiing a Type called "Percent" that has a base type of "Integer" but is contrained to values of 0-100. Then define a Definition "Completion Percent" based on type "Percent". The vast majority of user-defined "Types" are enumerations. Lets say you define a type "Severity" with enumerations "None", "Low", "Medium", "High", and "Critical". You can then define two attribute Definitions "Risk Development Severity" and "Risk Legal Severity", which apply to Objects. You can then put these two Defs in a view, and assign values for them to all the objects. Changing a "Value" in DXL looks like: o.NameAttr = SomeValue Changing a "Definition" in DXL looks like: AttrDef ad = find(mod, NameAttr). Make some changes to ad. Changing a "Type" in DXL looks like: AttrDef ad = find(mod, NameAttr); AttrType = ad.type; make some changes to at. Read more in the User Manual. Now back to your problem. [1] Line 1026 in function addValueToTestAttr, you are changing the value of the module-attribute. That only makes sense of the attribute is defined for modules; and in any case does NOT change the list of enumerations.
[2] Line 424 in function getAttributesValues, you are retrieving the value of the module-attribute; which only makes sense of the attribute is defined for modules; and in any case does NOT give you the list of available enumerations.
It is difficult to do, but these two lines of code need to be changed to something like I said above, leading to the "modify(ad,xx)" command. -Louie In my opinion, based partly on my ignorance of what you are doing, is that you do NOT need a separate script to add an enumeration to a single attribute in a single module. It is easier just to let the user do it via the GUI. |
Re: Copying the value entered inside the TEXTBOX to dropdown available llandale - Thu Jul 03 11:14:02 EDT 2014 It would make it a lot easier if you would say what is going wrong. Debugging for "an issue" in 1700 lines of code is difficult. But I do see this: You have a conceptual problem distinguishing Attribute "Values" from Attribute "Definitions" from Attribute "Types". Values: An object can be given a value for an attribute; e.g. setting the "Object Text" for an object. The normal module GUI shows objects as rows and typically attributes as columns, when you edit a cell you are giving that object a value for that attribute. Objects can have attribute values, so can Modules and Links. (Not Projects nor Folders). Definition. This makes an attribute available in a module. the Definition constrains..
[1] What kind of data can be put in the attribute, Text, String, Integer, Boolean etc. This constraint is called the attribute "Type". Type. List of available attribute value contraint types. Notice that there are standard types already defined, "Text", "String", "Integer" et tal. When you create an attribute Definition, you must assign it a Type. A Type can be used by more than one definition, e.g. Last Modified On and Created On are both of type "Date". Imagine definiing a Type called "Percent" that has a base type of "Integer" but is contrained to values of 0-100. Then define a Definition "Completion Percent" based on type "Percent". The vast majority of user-defined "Types" are enumerations. Lets say you define a type "Severity" with enumerations "None", "Low", "Medium", "High", and "Critical". You can then define two attribute Definitions "Risk Development Severity" and "Risk Legal Severity", which apply to Objects. You can then put these two Defs in a view, and assign values for them to all the objects. Changing a "Value" in DXL looks like: o.NameAttr = SomeValue Changing a "Definition" in DXL looks like: AttrDef ad = find(mod, NameAttr). Make some changes to ad. Changing a "Type" in DXL looks like: AttrDef ad = find(mod, NameAttr); AttrType = ad.type; make some changes to at. Read more in the User Manual. Now back to your problem. [1] Line 1026 in function addValueToTestAttr, you are changing the value of the module-attribute. That only makes sense of the attribute is defined for modules; and in any case does NOT change the list of enumerations.
[2] Line 424 in function getAttributesValues, you are retrieving the value of the module-attribute; which only makes sense of the attribute is defined for modules; and in any case does NOT give you the list of available enumerations.
It is difficult to do, but these two lines of code need to be changed to something like I said above, leading to the "modify(ad,xx)" command. -Louie In my opinion, based partly on my ignorance of what you are doing, is that you do NOT need a separate script to add an enumeration to a single attribute in a single module. It is easier just to let the user do it via the GUI. Thanks Louie. I have updated the latest code below. Please help me out. |
Re: Copying the value entered inside the TEXTBOX to dropdown available You don't say what is happening wrong. You don't seem to take the suggestions. You do seem to be asking to add a bunch of functionality to some code. I think this is beyond the scope of the forum; we don't write big scripts and give them away here. -Louie |
Re: Copying the value entered inside the TEXTBOX to dropdown available llandale - Thu Jul 03 12:02:40 EDT 2014 You don't say what is happening wrong. You don't seem to take the suggestions. You do seem to be asking to add a bunch of functionality to some code. I think this is beyond the scope of the forum; we don't write big scripts and give them away here. -Louie No Mr. Louie...I have always followed your suggestions. Your suggestions are invaluable , believe me I have always followed. I am not asking to add big bunch of code at all, I just need to add the new value entered in the DROP DOWN LIST to be added to the attribute. Sometimes I do not understand big functionality but after your suggestions you have made me to code better. Thanks. |
Re: Copying the value entered inside the TEXTBOX to dropdown available KBSri - Thu Jul 03 14:02:33 EDT 2014 No Mr. Louie...I have always followed your suggestions. Your suggestions are invaluable , believe me I have always followed. I am not asking to add big bunch of code at all, I just need to add the new value entered in the DROP DOWN LIST to be added to the attribute. Sometimes I do not understand big functionality but after your suggestions you have made me to code better. Thanks. You have enough samples to at least get going with it. This forum really isn't about someone else writing your code for you, its for us to help you doing so. I'm not going to debug a 1000 line program and I'm not going add a bunch of functionality to it. In this particular case, just have the person add the enum manually. Adjusting Enums is difficult. -Louie |
Re: Copying the value entered inside the TEXTBOX to dropdown available
In the Code Line: 1444 after I tried something like this: if(get(dbeProjectName == 1)){ AddEnum(m,sPRJTYPE,sNewValue)} How to add the new value entered in the DROP DOWN list box to be called to this function. Thanks. |
Re: Copying the value entered inside the TEXTBOX to dropdown available KBSri - Mon Jul 07 11:17:08 EDT 2014
In the Code Line: 1444 after I tried something like this: if(get(dbeProjectName == 1)){ AddEnum(m,sPRJTYPE,sNewValue)} How to add the new value entered in the DROP DOWN list box to be called to this function. Thanks. What you are trying to do does not make sense. The reason for enumerated attributes is to constrain what the user can select. The reason a Combo drop-down exists is also to constrain what the user can select. For this reason the edit=true parameter is rarely used. I NEVER edit enumerations using DXL. Why would you want to? Much easier to make the changes manually and then copy the updated attribute (and corresponding type) to other modules using the copyAttrsPlus script. If you allow users to change enumerations on the fly you are asking for trouble. Tony |
Re: Copying the value entered inside the TEXTBOX to dropdown available Tony_Goodman - Tue Jul 08 08:40:11 EDT 2014 What you are trying to do does not make sense. The reason for enumerated attributes is to constrain what the user can select. The reason a Combo drop-down exists is also to constrain what the user can select. For this reason the edit=true parameter is rarely used. I NEVER edit enumerations using DXL. Why would you want to? Much easier to make the changes manually and then copy the updated attribute (and corresponding type) to other modules using the copyAttrsPlus script. If you allow users to change enumerations on the fly you are asking for trouble. Tony Hello Tony, I am able to add the new ENUM value to the attribute after your valuable suggestions. Is there any way to refresh DBE immediately after adding the value to drop down list to see the newly added ENUM value? |